package br.org.credfaz.ficha.utils;


import java.sql.Date;

import br.org.credfaz.ficha.dao.SaldoDevedorDAO;
import br.org.credfaz.ficha.modelo.SaldoDevedor;

import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;

public class CalculaSaldoDevedor {

	public SaldoDevedor CalculaSaldo(Long idcliente, float saldodia, float juros,
			Date datasaida, float numcontr) {
		
		SaldoDevedorDAO sd = new SaldoDevedorDAO();

		SaldoDevedor sdevedor = new SaldoDevedor();
		
		sdevedor.setIdcliente(idcliente);
		sdevedor.setValorsaldodevedor(saldodia);
		sdevedor.setValorjuros(juros);
		sdevedor.setDatasaida(datasaida);
		sdevedor.setNumcontrato(numcontr);

		Date d1 = null;
		try {
			java.util.Date dataUtil = new java.util.Date();   
			
			d1 = new Date(dataUtil.getTime());
		} catch (ParseException ex) {
			ex.printStackTrace();
		}
		Date d2 = null;
		try {
			
			d2 = sdevedor.getDatasaida();
			
		} catch (ParseException ex) {
			ex.printStackTrace();
		}
		long hd;
				
		if (d2.compareTo(d1) <= 0) {
			hd = 0;
		}else{
		
			long dt = (d2.getTime() - d1.getTime()) + 3600000;
			     hd = (dt / 86400000L) + 1;
		}
		sdevedor.setQtddias((int) hd);

		float valorjuros30;
		float jurosdia;
		float saldototal;

		valorjuros30 = sdevedor.getValorsaldodevedor() *( sdevedor.getValorjuros() / 100);
		jurosdia = (valorjuros30 / 30);
		saldototal = (jurosdia * sdevedor.getQtddias()) + sdevedor.getValorsaldodevedor();
		sdevedor.setValorsaldodevedorsaida(saldototal);
		
		sd.adiciona(sdevedor);
		
		return null;

	}

}
